home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / program / 441 / dlibs12 / main.c < prev    next >
C/C++ Source or Header  |  1990-11-23  |  2KB  |  60 lines

  1. #include <osbind.h>
  2. #include <stdio.h>
  3. #include <basepage.h>
  4.  
  5. extern int    _argc;
  6. extern char    **_argv;
  7. extern char    *_envp;
  8.  
  9. FILE    _iob[_NFILE] =            /* stream buffers */
  10.     {
  11. /* stdin */    {0, NULL, NULL, (_IOREAD | _IOFBF), 0, 0, '\0'},
  12. /* stdout */    {0, NULL, NULL, (_IOWRT | _IONBF), 1, 0, '\0'},
  13. /* stderr */    {0, NULL, NULL, (_IOWRT | _IONBF), -1, 0, '\0'},
  14. /* stdprn */    {0, NULL, NULL, (_IOWRT | _IONBF), 2, 0, '\0'},
  15. /* stdaux */    {0, NULL, NULL, (_IOREAD | _IOWRT | _IONBF), 3, 0, '\0'},
  16.         {0, NULL, NULL, 0, 0, 0, '\0'},
  17.         {0, NULL, NULL, 0, 0, 0, '\0'},
  18.         {0, NULL, NULL, 0, 0, 0, '\0'},
  19.         {0, NULL, NULL, 0, 0, 0, '\0'},
  20.         {0, NULL, NULL, 0, 0, 0, '\0'},
  21.         {0, NULL, NULL, 0, 0, 0, '\0'},
  22.         {0, NULL, NULL, 0, 0, 0, '\0'},
  23.         {0, NULL, NULL, 0, 0, 0, '\0'},
  24.         {0, NULL, NULL, 0, 0, 0, '\0'},
  25.         {0, NULL, NULL, 0, 0, 0, '\0'},
  26.         {0, NULL, NULL, 0, 0, 0, '\0'},
  27.         {0, NULL, NULL, 0, 0, 0, '\0'},
  28.         {0, NULL, NULL, 0, 0, 0, '\0'},
  29.         {0, NULL, NULL, 0, 0, 0, '\0'},
  30.         {0, NULL, NULL, 0, 0, 0, '\0'}
  31.     };
  32.  
  33. _main()
  34.     {
  35.     void exit();
  36.     register FILE *f;
  37.     register int i, rv;
  38.  
  39.     for(i = 0, f = _iob; i < 5; ++i, ++f)    /* flag device streams */
  40.         if(isatty(f->_file))
  41.             f->_flag |= _IODEV;
  42.     main(_argc, _argv, _envp);        /* if main() returns... */
  43.     exit(EXIT_SUCCESS);            /* ...exit with OK status */
  44.     }
  45.  
  46. void exit(status)
  47.     int status;
  48.     {
  49.     register int i, f;
  50.  
  51.     for(i=0; i<_NFILE; ++i)
  52.         {
  53.         f = _iob[i]._flag;
  54.     /*    if((f & (_IOREAD | _IOWRT)) && !(f & _IODEV))    */
  55.         if(f & (_IOREAD | _IOWRT))
  56.             fclose(&_iob[i]);
  57.         }
  58.     _exit(status);
  59.     }
  60.